iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 30
1
自我挑戰組

C# 從入門到WebApi系列 第 30

[Day30] 使用ngrok 測試API

  • 分享至 

  • xImage
  •  

我的API寫好了 想給外面的人使用要怎麼辦

我們到目前為止所寫的API
只能在本地端執行
如果想要將你的API SERVER提供對外的話
必須要部屬到Nginx, IIS, Apache等等
但是我今天只是做一個簡單的小專案
有需要這摸搞剛嗎...
所以我們可以使用
ngrok
這個程式來測試我們的API

關於ngrok

他是一個免安裝的軟體
本質其實就是一個反向代理
能夠將我們的本機的port映射到一個外部的網址
而且有提供https的服務

我們到官網選擇下載

https://ithelp.ithome.com.tw/upload/images/20200930/20109549G1yHAtqur0.png

下載之後直接解壓縮就會看到一個執行檔ngrok.exe

之後我們點開ngrok.exe
https://ithelp.ithome.com.tw/upload/images/20200930/20109549fVyIANMUY8.png

可以看見一些使用說明與範例

我們打開之前做的產品管理專案並執行
https://ithelp.ithome.com.tw/upload/images/20200930/201095492D6zGG3qhF.png

可以看見我們本機port 是 5001
然後打開ngrok
想要將本地的port對外請用

ngrok http 5001(你的port)

https://ithelp.ithome.com.tw/upload/images/20200930/20109549LObOQmht3e.png

可以看見他將我們的port轉成外部網址
一個是http 另一個是https的
然後我們打開PostMan
輸入https://e92fe8b6f84a.ngrok.io/api/product/getproduct
https://e92fe8b6f84a.ngrok.io 所指的是 localhost的部分
所以後面的api路由一樣要加

點選執行
會發現他給你一個503的錯誤
https://ithelp.ithome.com.tw/upload/images/20200930/20109549wqkyiezuQU.png

這是因為我們的localhost 在建立專案的時候
有勾選支援https
https://ithelp.ithome.com.tw/upload/images/20200930/20109549aKtEOzcv0y.png

但是免費版的 ngrok 並不支援轉換https
(我不確定要不要付費或是加入會員就行)

所以我們要關掉我們localhost的https
我們回到專案
點選專案->專案屬性
https://ithelp.ithome.com.tw/upload/images/20200930/20109549Bni8LkZ0kv.png

選擇偵錯
啟動的部分改成IIS Express
取消勾選啟用SSL

https://ithelp.ithome.com.tw/upload/images/20200930/20109549LW26DaXzDH.png

然後重新啟動專案
會發現port改變了
所以我們重新啟動ngrok
這次我們用不同指令
因為有時候只使用上面的指令會對不到localhost
所以我推薦用

ngrok http -host-header=localhost 8027(你的port)
這個指令能明確指定要對到哪個host

然後一樣開啟POSTMAN測試

https://ithelp.ithome.com.tw/upload/images/20200930/20109549HJKVEnXEN1.png

成功
你可以將這給網址給你的朋友一起體驗你作的API
不做要注意的是這個網址有效時間只有8小時
https://ithelp.ithome.com.tw/upload/images/20200930/20109549AGfz3Oq3jb.png

繼續昨天的line機器人吧

我們將昨天的專案打開
然後一樣將https支援關閉
執行專案
在ngrok中取得對外網址

然後開啟line Developer的網頁
https://ithelp.ithome.com.tw/upload/images/20200930/20109549Ne2tdyrbUC.png
一樣選擇Messaging API

https://ithelp.ithome.com.tw/upload/images/20200930/20109549M9N1ytkYH1.png
在webhook的地方填入你的對外網址
記得要選https的
然後可以用verify測試是否成功

接著到basic setting
點選 LINE Official Account Manager
https://ithelp.ithome.com.tw/upload/images/20200930/20109549FNPU1uzAP0.png

選擇回應設定
https://ithelp.ithome.com.tw/upload/images/20200930/20109549tUApYGLOUT.png

停用自動回應訊息
https://ithelp.ithome.com.tw/upload/images/20200930/20109549MezUMYgjRr.png

打開LINE測試
https://ithelp.ithome.com.tw/upload/images/20200930/20109549FkeQCq0rwJ.png

成功

完賽感想

其實在前面幾天寫文章的時候就覺得有一點搬石頭砸自己腳的感覺了
雖然有成功堅持到完賽
但總覺得有點虎頭蛇尾
果然缺乏先規劃就會很慘RRR
回去好好精進自己
明年再來好好挑戰一次


上一篇
[Day29] 來做個簡單的Line機器人吧
系列文
C# 從入門到WebApi30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言